[C] Criptografia por Inversão de bits
Publicado por Enzo de Brito Ferber 04/03/2006
[ Hits: 13.323 ]
Homepage: http://www.maximasonorizacao.com.br
Programa de criptografia simples que
usa o operador ~(complemento de 1).
O operador ~ faz o seguinte:
01000001 ~
10111110
Todos os bits 0 passam a ser 1, e
todos os 1 passam a ser 0. O
programa criptografa um arquivo
inteiro, não uma só palavra.
#include <stdio.h>
#include <stdlib.h>
char encode(char ch){
return(~ch);
}
int set(){
system("clear");
}
int abrirArquivo(char caminho[]){
FILE *arqEntrada;
FILE *arqSaida;
char *textoEntrada;
char *textoSaida;
char ch;
int i=2; //para poder ser usado para alocação dinamica
if((arqEntrada = fopen(caminho, "r")) == 0){
printf("Impossivel abrir o arquivo...\n");
printf("Pressione ENTER para continuar...\n");
__fpurge(stdin);
ch = getchar();
main();
exit(1);
}
if((arqSaida = fopen("texto_criptografado.txt", "w")) == 0){
printf("Impossivel abrir o arquivo...\n");
printf("Pressione ENTER para continuar...\n");
__fpurge(stdin);
ch = getchar();
main();
}
printf("Realizando criptografia...\n");
while(!feof(arqEntrada)){
if((textoEntrada = (char *)calloc(i, sizeof(char)))== 0){
printf("Memoria insuficiente...\n");
exit(1);
}
if((textoSaida = (char *)calloc(i, sizeof(char)))== 0){
printf("Memoria insuficiente...\n");
exit(1);
}
fscanf(arqEntrada, "%c", &textoEntrada[i-2]);
if(textoEntrada[i-2] == '{FONTE}') break;
textoSaida[i-2] = encode(textoEntrada[i-2]);
fprintf(arqSaida, "%c", textoSaida[i-2]);
i++;
}
printf("Criptografia do arquivo realizada com sucesso...\n\n\n");
fclose(arqEntrada);
fclose(arqSaida);
free(textoEntrada);
free(textoSaida);
system("cat texto_criptografado.txt");
__fpurge(stdin);
printf("\n\nPressione ENTER para continuar...");
ch = getchar();
}
int main(void){
char caminho[100];
LOOP:
set();
printf("\t\t* * * * * CRIPTOGRAFIA DE ARQUIVO * * * * *\n\n\n");
printf("Arquivo: ");
__fpurge(stdin);
scanf("%[^\n]", caminho);
abrirArquivo(caminho);
goto LOOP;
}
Criptografar um Arquivo de Texto por cifra de Transposição
Captura de Banners dos Serviços
Esse código pode ser considerado um vírus?
Berry Bank: Criando um Banco Digital Gamificado para seus Filhos com Gentoo, Flask e Tailscale
Papagaiando o XFCE com temas e recursos
Instale o DOOM Retro no Gentoo facilmente via Overlay
Steam (Flatpak) rodando jogos em partição NTFS
O dock Plank + U-Launcher deixam qualquer desktop mais produtivo
Instalar Linux em notebook Sony Vaio VPCEG13EB (17)
Alguém tem que acabar com ANATEL!!! (10)
O que você está ouvindo agora? [2] (229)









